<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:p="http://primefaces.org/ui"
      xmlns:f="http://java.sun.com/jsf/core">  

    <ui:composition template="/templates/templateCadastro.xhtml">

        <ui:define name="content">

            <p:growl showDetail="true" showSummary="true" autoUpdate="true" globalOnly="true" />

            <!-- INICIO CADASTRO -->

            <p:panel id="pnlCad" header="Cadastro de Cliente Físico" >

                <h:panelGrid id="grid" columns="4" cellspacing="10">

                    <h:outputLabel value="Nome:" style="font-weight: bold"/>
                    <p:inputText id="nome" label="Nome" required="true" requiredMessage="Campo obrigatório" 
                                    title="Nome do Cliente" value="#{clienteFisicoBean.cliente.nome}" size="50" />
                    <p:message for="nome" />
                    <h:outputLabel/>

                    <h:outputLabel value="CPF:"/>
                    <p:inputMask id="nomeFantasia" label="CPF" mask="999.999.999-99"
                                    title="CPF do Cliente" value="#{clienteFisicoBean.cliente.cpf}" size="20" />

                    <h:outputLabel value="RG"/>
                    <p:inputText id="rg" label="RG"
                                    title="RG do Cliente" value="#{clienteFisicoBean.cliente.rg}" size="20" />

                    <h:outputLabel value="Sexo:"/>
                    <p:selectOneMenu id="sexo" value="#{clienteFisicoBean.sexo}" >
                        <f:selectItem itemLabel="Masculino" itemValue="M" />
                        <f:selectItem itemLabel="Feminino" itemValue="F" />
                    </p:selectOneMenu>

                    <h:outputLabel value="Estado Civil"/>
                    <p:selectOneMenu id="sexo" value="#{clienteFisicoBean.estadoCivil}" >
                        <f:selectItem itemLabel="Solteiro(a)" itemValue="SO" />
                        <f:selectItem itemLabel="Casado(a)" itemValue="CA" />
                        <f:selectItem itemLabel="Separado(a)" itemValue="SE" />
                        <f:selectItem itemLabel="Viúvo(a)" itemValue="VI" />
                        <f:selectItem itemLabel="Amasiado(a)" itemValue="AM" />
                    </p:selectOneMenu>

                    <h:outputLabel value="CTPS:"/>
                    <p:inputText id="ctps" label="CPF"
                                    title="Carteira do Trabalho do Cliente" value="#{clienteFisicoBean.cliente.ctps}" size="20" />

                    <h:outputLabel value="Profissão"/>
                    <p:inputText id="prof" label="Profissão"
                                    title="Profissão / Ocupação do Cliente" value="#{clienteFisicoBean.cliente.profissao}" size="20" />

                    <h:outputLabel value="Naturalidade:" />
                    <p:inputText id="naturalidade" label="Naturalidade"
                                    title="Naturalidade do Cliente" value="#{clienteFisicoBean.cliente.naturalidade}" size="20" />

                    <h:outputLabel value="Nacionalidade:" />
                    <p:inputText id="nacionalidade" label="Nacionalidade"
                                    title="Nacionalidade do Cliente" value="#{clienteFisicoBean.cliente.nacionalidade}" size="20" />

                    <h:outputLabel value="Telefone:" />
                    <p:inputMask id="tel" label="Telefone" mask="(99) 9999-9999"
                                    title="Telefone de Contato do Cliente" value="#{clienteFisicoBean.cliente.telefones}" size="20" />

                    <h:outputLabel value="Data de Nascimento:" />
                    <p:inputMask id="tel" label="data" mask="99/99/9999"
                                    title="Data de nascimento do Cliente" value="#{clienteFisicoBean.cliente.dataNascimento}" size="20" />

                    <h:outputLabel value="E-mail:" />
                    <p:inputText id="email" label="E-mail" validatorMessage="E-mail Inválido"
                                    title="E-mail do Cliente" value="#{clienteFisicoBean.cliente.email}" size="50" >
                        <f:validateRegex pattern="[\w\.-]*[a-zA-Z0-9_]@[\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]" />
                    </p:inputText>

                </h:panelGrid>

                <div style="text-align: center">

                    <p:commandButton value="Limpar" type="reset" icon="ui-icon-minusthick" />
                    <p:commandButton value="Cadastrar" actionListener="#{clienteFisicoBean.cadastrar()}" rendered="#{clienteFisicoBean.cadastro || clienteFisicoBean.listagem}" icon="ui-icon-disk" update="@form" />
                    <p:commandButton value="Alterar" actionListener="#{clienteFisicoBean.editar()}" rendered="#{clienteFisicoBean.edicao}" icon="ui-icon-pencil" update="@form" />
                    <p:commandButton value="Cancelar" action="#{clienteFisicoBean.cancelar()}" immediate="true" icon="ui-icon-cancel" />

                </div>

            </p:panel>

            <!-- FIM CADASTRO -->

            <br />

            <!-- INICIO LISTAGEM -->

            <h:panelGroup id="tabela" >

                <p:dataTable id="basic" var="item" value="#{clienteFisicoBean.cliente}" emptyMessage="Nenhum Cliente Físico cadastrado até o momento"
                                paginator="#{clienteFisicoBean.paginator}" rows="#{clienteFisicoBean.rowNumber}" >

                    <f:facet name="header">
                        Clientes Físicos
                    </f:facet>

                    <p:column headerText="Nome" sortBy="#{item.nome}" style="width: 45%">
                        <h:outputText value="#{item.nome}" />
                    </p:column>

                    <p:column headerText="Ação" style="text-align: center; width: 10%">
                        <h:commandButton id="edit" image="/resources/images/edit.png" actionListener="#{clienteFisicoBean.prepararEditar()}" title="Clique para alterar">
                            <f:setPropertyActionListener value="#{item}" target="#{clienteFisicoBean.cliente}" />
                            <f:ajax execute="@this" render="@form" />
                        </h:commandButton>
                        <p:tooltip for="edit" showEffect="slide" hideEffect="slide" />
                        &nbsp;
                        <h:commandButton id="remove" image="/resources/images/remove.png" action="#{clienteFisicoBean.excluir()}" immediate="true" title="Clique para excluir">
                            <f:setPropertyActionListener value="#{item}" target="#{clienteFisicoBean.cliente}" />
                        </h:commandButton>
                        <p:tooltip for="remove" showEffect="slide" hideEffect="slide" />
                    </p:column>

                </p:dataTable>

            </h:panelGroup>

            <!-- FIM LISTAGEM -->

        </ui:define>

    </ui:composition>

</html>